
        <html>
			<head>
			     <title>内网渗透思路探索    之新思路的探索与验证 - vodu</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/tips/16116">http://drops.wooyun.org/tips/16116</a></h1>
				
      <p>
        <h1>0x00 前言</h1>

<hr />

<p>在安全发展初期，企业和一些个人使用杀毒软件进行安全防护，如卡巴斯基，symantec等，安全人员使用免杀这项技术来对抗杀软的检查。现如今，安防软件采用各种手段来保护内网安全，如网络流量分析，软件行为分析，网络行为分析等，提高了内网的安全性。</p>

<p>同时在渗透过程中经常遇到一种内网结构，由数台mac，linux和windows个人机组成的混合内网，一种扁平化结构。</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514041234084148.png" alt="" /></p>

<!--more-->

<p>windows域与扁平化网络结构对比图</p>

<p>这种扁平化的网络难以管理和维护。并且给安全测试人员带来了困扰。渗透这些网络，就不能使用传统域渗透思路，进入域，获取域管理员权限，控制域控。</p>

<p>去年Google宣布，放弃内外网结构，将所有网络当做外网对待。这种访问模式要求客户端是受控的设备，并且需要用户证书来访问。访问有通过认证服务器、访问代理以及单点登录等手段，由访问控制引擎统一管理，不同用户、不同资源有不同的访问权限控制，对于用户所处位置则没有要求。也就是说，无论用户在Google办公大楼、咖啡厅还是在家都是一样的访问方式，过去从外网访问需要的VPN已经被废弃。而所有员工到企业应用的连接都要进行加密，包括在办公大楼里面的访问。可以说，Google的这种模式已经彻底打破了内外网之别。（援引于http://www.freebuf.com/news/67346.html）</p>

<p>所以针对传统网络结构以及包括这种无内网的网络结构提出一种新的渗透思路，同时能对流量行为检测有一定的规避作用。受到google的启发，如果渗透也不再关注内外网结构，不再专注于内网渗透，把对于外网的思路完整的放在渗透中，自始至终，一直使用外网渗透方式，是否就能渗透特殊的网络并且能在一定程度上逃避网络行为检测。开始探索，提出一个完整的渗透方案</p>

<p>该方案就是把思路更多的放在网络基础设备上，如Router，Switch等基础网络设备。攻击方式，就像NSA的TAO系统一样，检查流量，控制流量，最后利用流量。</p>

<h1>0x01 渗透初探</h1>

<hr />

<p>基于这样的渗透思路，开始尝试寻找试验目标。</p>

<p>关于试验用目标，有几点要求，首先是在一个工作组环境中，（其次）拥有较多的主机或者较大网络。经过不断寻找，成功渗透进一个满足我需求的内网。</p>

<p>目标是一个学校，渗透的过程比较平常，注入，上shell，反弹不成功，正向反弹，控制服务器，没有太多的亮点。</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514041393983229.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160526/20160526111331479181111.jpg" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514042019984415.png" alt="" /></p>

<p>然后开始针对网络设备进行攻击。利用正向反弹工具，将我的kali接入了内网，定向攻击网关设备。利用snmp的弱口令，直接获取了三层交换的控制权限。</p>

<p>ipconfig ／all结果截图：</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514042154947514.png" alt="" /></p>

<p>执行snmpwalk读取密码：</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514042332080613.png" alt="" /></p>

<p>成功读取到密码</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514042563778713.png" alt="" /></p>

<p>注：kali的snmpwalk 不能利用proxychains走socks5代理，攻击内网机器，暂不清楚原因。</p>

<p>这里需要多说一下，我并没有直接进行固件级别的EXP测试，因为在exploit-db上的路由器固件的远程命令执行exp并不多，有很多的exp并没有公开，并且由于自己没有构造EXP的能力，遂放弃通过EXP获取权限的思路。</p>

<h1>0x02 收集分析网络基础信息</h1>

<hr />

<p>通过正向代理访问网关，成功telnet连接到设备：</p>

<p><img src="http://static.wooyun.org//drops/20160525/201605251404267879889.png" alt="" /></p>

<p>然后立即查看所有配置：</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514042828255910.png" alt="" /></p>

<p>查看版本信息：</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514043050806109.png" alt="" /></p>

<p>查看设备的IP地址：</p>

<p><img src="http://static.wooyun.org//drops/20160525/20160525140432414831114.png" alt="" /></p>

<p>查看活动主机：</p>

<p><img src="http://static.wooyun.org//drops/20160525/20160525140434332091211.png" alt="" /></p>

<p>获取完基本信息之后，进行简单分析，华为的9306，三层交换机，查看到的下辖的用户不多，只有160多个，可能不准确，因为该时间段为非办公生活时间段。然后梳理流量线路，朝着外网方向，继续探索，又获取一台ruijie ES2000GS的控制权限，之后的机器不允许访问，无法继续往下拓展，总结如下</p>

<p>华为的9306应该是一层楼的或者一栋楼的汇聚，ruijie ES2000GS应该是一栋楼或者一个小园区的出口，校园核心的双交换网络或者出口路由器都不能被telnet访问。之所以这样分析，因为在已经控制的机器上暂未发现任何一个公网IP地址；链接数、活跃主机数量都处于一个较低的量级；发现了nat的配置，但是并没有公网映射；所以只能这样简单的判断。</p>

<h1>0x03 获取内网用户详细信息</h1>

<hr />

<p>为了获取这个详细信息，就必须要对内网流量进行分析，为了完成这个目的，需要在内网路由器，与公网的Ubuntu之间建立了一个隧道。在准备阶段，预备了以下几种隧道协议部署方案：</p>

<table>
<thead>
<tr>
  <th>协议</th>
  <th>安全性</th>
  <th>PAT穿透</th>
</tr>
</thead>
<tbody>
<tr>
  <td>GRE</td>
  <td>不加密</td>
  <td>否</td>
</tr>
<tr>
  <td>PPTP</td>
  <td>加密</td>
  <td>是</td>
</tr>
<tr>
  <td>L2TP</td>
  <td>不加密</td>
  <td>是</td>
</tr>
<tr>
  <td>IP-SEC</td>
  <td>加密</td>
  <td>否</td>
</tr>
<tr>
  <td>L2TP over IPSEC</td>
  <td>加密</td>
  <td>是</td>
</tr>
</tbody>
</table>

<p>由于已经控制的设备没有公网IP地址，没有控制实现NAT功能的网络出口设备，就必须选择能穿越PAT的隧道。所以就只能在L2TP ，L2TP over IPSEC，PPTP中选择一个，最终选择了L2TP。因为锐捷经过测试发现不支持PPTP时，L2TP over IPSEC配置建立隧道导致设备不稳定，可能是设备自身的原因，在本地模拟环境测试时正常。</p>

<p>准备配置L2TP隧道，在本地的模拟环境上进行了部署，都能连通。但是到了设备上，报错说不支持命令，并且virtual－ppp接口无法添加配置，至今未找到原因。最后直接图形化配置完成，锐捷提供了L2TP VPN的图形化配置界面，很简单。</p>

<p><img src="http://static.wooyun.org//drops/20160525/20160525140436547171310.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514043713674149.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514043962693158.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514044182787167.png" alt="" /></p>

<p>在想分析流量的时候，出现一个问题，原计划是使用ip flow，但是该协议是cisco私有协议，锐捷与华为都不支持，并且笔者对华为的IP STEAM不熟悉，没有很好的解决方案，在准备进行完整引导流量的准备时，发现锐捷的网关设备，可以生成流量报表。</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514044375532178.png" alt="" /></p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514044529920187.png" alt="" /></p>

<p>对统计好的流量大概分析后，对内网的流量有了一个大概的认识，HTTPS流量占了日常网页流量的很大部分，并且发现了内网有较大规模部署360安全大礼包。</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514044762404196.png" alt="" /></p>

<p>然后定向劫持一些腾讯的http网页，利用小工具，将beef代码插入到网页中，进行基本信息的获取。由于较多网页为HTTPS，并没有完善方案，所以收集到的信息很少。<br />
这里需要多说一句，我劫持流量的方式是利用MQC或者添加路由，进行抓取，引导流量。没有使用Switch端口镜像配置获取流量，像（http://drops.wooyun.org/tips/649）该文章说的方式。并且在这里最大程度的反对大家使用这种方案！因为在cisco，juniper和huawei设备上，端口镜像将会导致DST端口或者VLAN失去承载正常业务数据的功能。简单说就是，进行端口镜像配置，流量被镜像到的端口将不再具有正常通信功能。如果不是经过严密讨论设计之后得出的方案，还是劝大家别去考虑该方法。</p>

<p>然后利用一些能找到的一些EXP，进行挂马。开始没有上线的，将马换成powershell empire的exe之后，终于有了一台上线的。分析可能是由于EXP和木马没有进行免杀，并且机器上有安装360或者一些其它的杀软，直接导致EXP与木马被杀。<br />
因为只是验证性的渗透，使用的木马和EXP全部是网上公开的，并且没有准备特定场景的定向钓鱼，所以只能获取个别机器的控制权限。但是如果经过一些准备，在完全控制了用户流量这种情景下，种马不会特别难。</p>

<p>之后我试图进行内网控制扩展，即尝试渗透本园区之外的机器。结果两台设备上没有运行任何路由协议，路由配置就一条默认路由指向出口，其他的路由都是本地直连路由。</p>

<p><img src="http://static.wooyun.org//drops/20160525/2016052514044860773206.png" alt="" /></p>

<p>之前准备的方案是进行路由协议的劫持，或者称为路由表的优化更为确切，就是利用协议特性，将我变成必经之路，获取内网其他区域的流量。该设计方案并不关心路由协议，不论是OSPF，EIGRP，RIPv2或者是混合网络，只要他和其他机器之间运行着某种路由协议，就能完成路由的劫持。很遗憾，这个环境中不能实地测试了。</p>

<p>在尝试进一步明确内网设备信息，进行了简单的tracert查找，进一步明确了网络链路结构。在扩展渗透的时候受阻，核心路由器只给我回复icmp的信息，不允许我访问其他的任何端口，对于这情况，目前没有有效的方案。</p>

<p>这是一种比较无奈的情况，应该也就是大家一直对Router或者Switch没啥兴趣的原因。这类设备，如果精心配置了安全，那么除了EXP外，其他的控制思路都会十分的艰难。在这台设备上没有尝试已经公开的EXP。因为针对核心设备，EXP会引起的崩溃可能会导致机器瘫痪，重启，产生巨大的影响。</p>

<p>到此，测试就告一段落，清理渗透痕迹撤出，并没有近一步尝试扩展控制。如果继续，进行一段时间的数据包监听等行为，一定能有所突破。</p>

<h1>0x04 总结</h1>

<hr />

<p>最近一直在研究流量的引导，控制，利用，以适应于各种渗透环境。<br />
所以这是我想到对抗这种环境特殊内网的方案，我认为可以使用这种思路，用在之前渗透的所有目标上，如果有逆向开发人员，漏洞人员的配合，渗透测试将会在内网中如鱼得水。</p>

<p>这种思路经过简单的变形，放大，会是一种极为方便的渗透思路，我这里举一例：</p>

<p>flag在一个内网的一台机器上，利用传统针对目标的渗透，无法获取到内网权限。然后该怎么办？<br />
获取目标网络信息，所属IP地址，然后，攻陷该运营商。然后利用流量控制目标1，突然发现目标2也在该运营商范围下，顺势拿下目标2，以此类推，目标3，目标4.。。。。。。。<br />
发现目标10不在该运营商范围内，利用BGP劫持公网路由信息。然后顺势扩展目标11，目标12.。。。。。。</p>

<p>该示例没有计算投入，并且需要大量的技术支持。但是收益一样客观。有人说BGP劫持被监控，实际上是，精心设计的BGP劫持，不会被发现，只是需要精心设计。</p>

<p>再结合实例，谈一下关于渗透行为的敏感性</p>

<p>由于该渗透是通过注入等操作进入内网，然后SNMP获取路由器权限，隧道并没有使用IPSEC加密，这三个步骤不可能逃过行为流量检测。</p>

<p>关于木马回连：</p>

<p>木马回连的地址，全部使用update.microsoft.com域名，在网络设备上，做通网该IP地址的流量进行定向劫持到VPS。将本地机器接入VPS，并且将VPN的IP地址设置为该域名解析的地址。这样就成功使得木马上线。<br />
使用的是empire木马，他的的流量使用SSL加密。关于EMPIRE的上线时间，并没有做特别设置，因为方便测试。在已控的网关与用户个人机器上看到的只会是用户与 update.microsoft.com该域名地址的ssl通信。但是在最外层的路由器上可以看到通网VPS的流量。所以说只要规避之前所说的敏感点，该方案会具备较高的隐蔽性。<br />
并且没有敏感的内网渗透行为，例如利用一个用户账户，登陆不该登陆的机器，访问不该访问的位置，打开不属于自己的文件夹。所有设备的发现没有靠扫描（第一步除外）。关于flag，只是通过捕获用户，检查用户访问位置，是否能访问flag文件夹。重复过程，直到抓到访问flag的用户。<br />
所以如果木马等工具能不被安防设备或者软件查杀，该渗透方案具有较高隐蔽性。由于该内网中没有行为检测设备或者我没有控制到，不能进一步判断。在设计之初，就考虑到顶级安全行为检测设备。由于非开发，没有考虑在机器端防护的部分。</p>

<p>最后说下这个思路的弊端</p>

<p>如果没有一个很成熟的钓鱼等方案，例如下载exe时做302跳转；劫持安全部门网页，提供安全更新；Router与Switch没有配置漏洞可以利用。那么该思路极其依赖漏洞的使用，例如需要Router与Switch远程命令执行漏洞来控制网络设备；flash，浏览器等软件的本地命令执行漏洞。<br />
需要操作路由器来对路由表进行优化与流量的引导，至少得对路由器，路由协议，交换机有深入或者较为深入的了解。<br />
对HTTPS没有什么好的解决方案。</p>

<p>所以如果某个安全研究人员或者初级团队使用，会遇到较多的瓶颈。<br />
但是如果你有一个，个人能力合适，人员方向覆盖较全的团队，你将会收到一些惊喜。</p>

<p>下一步，我将研究如何对抗这种方案。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          